// 1、创建koa实例对象
const Koa = require('koa')
const app = new Koa()
// 2、编写响应函数
// ctx:上下文，web容器，ctx.request  ctx.response
const respDurationMiddleware =  require('./middleware/duration')
app.use(respDurationMiddleware)
const respHeaderMiddleware =  require('./middleware/headers')
app.use(respHeaderMiddleware)

const respDataMiddleware =  require('./middleware/data')
app.use(respDataMiddleware)
/*
app.use((ctx,next) => {
	console.log('第一层中间件')
	console.log(ctx.request.url)
	ctx.response.body = 'hello world'
	next()
})
app.use(async (ctx,next) => {
	console.log('第二层中间件')
	const ret = await next()
	console.log(ret)
})
app.use((ctx,next) => {
	console.log('第三层中间件')
	return 'i love the dog'
})
*/
// 3、绑定端口号3000
app.listen(3000)


const webSocketService = require('./service/web_socket_service')
// 开启服务端的监听, 监听客户端的连接
// 当某一个客户端连接成功之后, 就会对这个客户端进行message事件的监听
webSocketService.listen()


/*
const WebSocket = require('ws')
const wss = new WebSocket.Server({
	port:9998
})
// 对客户端的连接事件进行监听
// client：代表的是客户端的连接socket对象
wss.on('connection',client => {
	console.log('有客户端连接成功了.....')
	// 对客户端的连接对象进行message事件的监听
	// msg:由客户端发给服务器的数据
	client.on('message',msg => {
		console.log('客户端发送数据给服务端了：' + msg)
		client.send('hello socket from backend')
	})
})
*/
// koa + mysql 实战：https://gitee.com/wuchunling/koa2-mysql/tree/master